package 常用类.Array类.set;

public class User {
    private Integer userId;
    private String userName;

    public User() {
    }

    public User(Integer userId, String userName) {
        this.userId = userId;
        this.userName = userName;
    }

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    @Override
    public String toString() {
        return "User{" +
                "userId=" + userId +
                ", userName='" + userName + '\'' +
                '}';
    }

    //设置两个对象是否相等的规则

    @Override
    public boolean equals(Object obj) {
        if (obj==null){
            return false;
        }
        User user=(User) obj;
        //判断两个对象是否为同一个对象
        if (this==user){
            return true;
        }
        //设置两个对象的相等规则（根据实际业务规则定）
        if (this.getUserId().equals(user.getUserId())&&this.getUserName().equals(user.getUserName())){
            return true;
        }
        //两个对象不相等
        return false;
    }


    /**
     * hashCode方法返回的值是一个整数
     * 该整数默认为当前对象的hash码,该hash码对应当前对象所在的内存地址
     * 不同对象生成的hashCode值不同
     * 重写HashCode方法的目的就是为了更改hashCode默认规则
     * @return
     */
    @Override
    public int hashCode() {
        return 1;
    }
}
